package com.jacob.interesting.utils;
//
//public class MongoUtils {
//
//    public static <T> List<Pair<Query, Update>> getPairList(List<T> list) {
//        List<Pair<Query, Update>> pairList = new LinkedList<>();
//        for (T t : list) {
//            // 循环获取Pair对象
//            Pair<Query, Update> pair = getPair(t);
//            pairList.add(pair);
//        }
//        return pairList;
//    }
//
//    private static <T> String getIdAnnotation(T t) {
//        // 获取类中的所有字段
//        Field[] fields = t.getClass().getDeclaredFields();
//        for (Field field : fields) {
//            // 获取字段的注解
//            Id id = field.getAnnotation(Id.class);
//            if (ObjUtil.isNotEmpty(id)) {
//                // 获取注解的名字
//                return field.getName();
//            }
//        }
//        return StrUtil.EMPTY;
//    }
//
//    public static <T> Pair<Query, Update> getPair(T t) {
//        Query query = new Query();
//        Update update = new Update();
//
//        JSONObject document = JSONUtil.parseObj(t, true);
//        // 删除key为“_id”的键值对，同时返回value
//        Object id = document.remove("_id");
//        if (ObjUtil.isEmpty(id)) {
//            id = document.remove("id");
//        }
//        if (ObjUtil.isEmpty(id)) {
//            id = document.remove(getIdAnnotation(t));
//        }
//        // 指定查询字段
//        query.addCriteria(Criteria.where("_id").is(id));
//        // 指定更新字段
//        document.forEach(update::set);
//        // 返回Pair对象
//        return Pair.of(query, update);
//    }
//
//}
